/**
 * 数据来源于腾讯地图官网提供的API获取
 * 官方地址
 * https://lbs.qq.com/service/webService/webServiceGuide/search/webServiceDistrict
 * 使用以下接口获取数据源（key失效之后需要重新申请）
 * https://apis.map.qq.com/ws/district/v1/list?key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77
 */

// https://apis.map.qq.com/ws/district/v1/list 接口返回的数据
import areaData from './dataSource.json';

// 需要特殊处理的省份 ，因为没有市级数据
const specialProvince = ['北京市', '上海市', '天津市', '重庆市', '澳门特别行政区', '香港特别行政区'];

// 构建树形结构方法
export function generateAreaTree() {
  const treeData = areaData[0].map((item) => {
    if (item.cidx) {
      item.city = areaData[1].slice(item.cidx[0], item.cidx[1] + 1);
      item.city = item.city.map((tim) => {
        if (tim.cidx) {
          item.district = areaData[2].slice(tim.cidx[0], tim.cidx[1] + 1);
          item.district = item.district.map((child) => ({ name: child.fullname, code: child.id }));
        }
        return { name: tim.fullname, code: tim.id, district: item.district };
      });
    }
    if (specialProvince.includes(item.fullname)) {
      const cityData = { name: '市辖区', code: item.id, district: [...item.city] };
      item.city = [cityData];
    }
    return { name: item.fullname, code: item.id, city: item.city };
  });
  return treeData;
}
